/* * Copyright 2015 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */#include"SkXfermodeInterpretation.h"#include"SkPaint.h"staticbooljust_solid_color(constSkPaint&p){returnSK_AlphaOPAQUE==p.getAlpha()&&!p.getColorFilter()&&!p.getShader();}SkXfermodeInterpretationSkInterpretXfermode(constSkPaint&paint,booldstIsOpaque){switch(paint.getBlendMode()){caseSkBlendMode::kSrcOver:returnkSrcOver_SkXfermodeInterpretation;caseSkBlendMode::kSrc:if(just_solid_color(paint)){returnkSrcOver_SkXfermodeInterpretation;}returnkNormal_SkXfermodeInterpretation;caseSkBlendMode::kDst:returnkSkipDrawing_SkXfermodeInterpretation;caseSkBlendMode::kDstOver:if(dstIsOpaque){returnkSkipDrawing_SkXfermodeInterpretation;}returnkNormal_SkXfermodeInterpretation;caseSkBlendMode::kSrcIn:if(dstIsOpaque&&just_solid_color(paint)){returnkSrcOver_SkXfermodeInterpretation;}returnkNormal_SkXfermodeInterpretation;caseSkBlendMode::kDstIn:if(just_solid_color(paint)){returnkSkipDrawing_SkXfermodeInterpretation;}returnkNormal_SkXfermodeInterpretation;default:returnkNormal_SkXfermodeInterpretation;}}